矩阵求导

Matrix Derivative

矩阵导数运算

一、标量方程对向量的导数

分子: f(y)1×1 的标量;分母: yn×1 的向量

1. 分母布局 denominator layout

与分母的行数相同

f(y)y=(f(y)y1f(y)y2f(y)yn)

2. 分子布局 numerator layout

与分子的行数相同

f(y)y=(f(y)y1,f(y)y2,,f(y)yn)
注意

以上两种布局没有本质区别,互为转置;为方便起见,以下的推导默认使用分母布局

二、向量方程对标量的导数

f(u)=(f1(u)f2(u)fm(u))f(u)u=(f1(u)uf2(u)ufm(u)u)

三、向量方程对向量的导数

f(y)=(f1(y)f2(y)fm(y))(m×1)y=(y1y2yn)(n×1)

分母布局的结果如下:(其转置(分子布局)实际上为雅可比矩阵

f(y)y=(f(y)y1f(y)y2f(y)yn)(n×1)=(f1(y)y1f2(y)y1fm(y)y1f1(y)y2f2(y)y2fm(y)y2f1(y)ynf2(y)ynfm(y)yn)(n×m)

有关结论(分母布局)

u=(u1u2un)(n×1)y=(y1y2yn)(n×1)(uTf)u=fAyy=AT

二次型的求导:

yTAyy=Ay+ATy

如果 A 为对称阵,则有 yTAyy=2Ay

链式法则

标量的链式求导,注意矩阵不满足乘法交换律
使用分母布局:

Ju=yuJy

离散状态空间方程: x[k+1]=Ax[k]+Bu[k]

代价函数: J=x[k+1]Tx[k+1]

Ju=x[k+1]u[k]Jx[k+1]=BT2x[k+1]

实际应用

线性回归

z^=y1+y2xJ=i=1n[zi(y1+y2xi)]2

使用矩阵求解

z=(z1z2zn)x=(1x11x21xn)y=(y1y2)z^=xy=(y1+y2x1y1+y2x2y1+y2xn)zz^=(z1(y1+y2x1)z2(y1+y2x2)zn(y1+y2xn))J=[zz^]T[zz^]=[zTyTxT][zxy]=zTzyTxTzzTxy+yTxTxy=zTz2zTxy+yTxTxyJy=2(zTx)+2xTxy=0y=(xTx)1xTz

如果没有解析解,使用机器学习的梯度下降

定义初始值 y
循环迭代 y=yα